package bsh.dyn;

/**
 * A JITCompiler compiles an {@link Invocable} down to bytecode. It usually means compiling all the necessary transformations with it
 * 
 * @author takeshi
 */
public interface JITCompiler {

    /**
     * Attempts to compile an Invocable, if it is {@link Invocable#isCompilable()}
     * 
     * @param invocable {@link Invocable}
     * @return {@link Invocable}
     */
    Invocable compileInvocable(Invocable invocable);

}
